package com.xbongbong.pro.statistic.pojo.dto;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.xbongbong.paas.toolbox.wrap.BaseDTO;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

/**
 * 创建时间： 2019/1/11 20:40
 * 修改时间： 2019/1/11 20:40 梁鲁江
 *
 * @author 梁鲁江
 */
@Setter
@Getter
@ToString
public class DataSourceAttrDTO extends BaseDTO {
    private static final long serialVersionUID = -2036386259509250731L;
    /**
     * 单数据源1，多数据源0  当single为0时，slaveSources不为空
     */
    @NotNull(message="{dto.msg.dataSourceAttr.single.NotNull}")
    @Range(min = 0, max = 2, message="{dto.msg.dataSourceAttr.single.Range}")
    private Integer single;
    /**
     * 图表类型
     */
    @NotNull(message="{dto.msg.dataSourceAttr.chartType.NotNull}")
    private Integer chartType;
    /**
     * 主表数据来源，有且只有一个 格式为：{"appId":1,"menuId":1}
     */
    @NotNull(message="{dto.msg.chartdataSourceAttrCategoryDelete.driverSources.NotNull}")
    @NotEmpty(message="{dto.msg.chartdataSourceAttrCategoryDelete.driverSources.NotNull}")
    private JSONObject driverSources;
    /**
     * 数据来源，最多有2个 格式为：[{"appId":1,"menuId":2}, {"appId":2,"menuId":3}]
     */
    @Size(max = 5, message = "{dto.msg.dataSourceAttr.slaveSources.Size}")
    private JSONArray slaveSources;
    /**
     * 特殊业务中的特殊字段(eg:WorkOrderV2中的VersionId)
     */
    private String specialField;
}
